﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Entities;
using Microsoft.ApplicationBlocks.Data;

namespace DAL
{
    public class CalleDAL
    {
        public static string strConexion = System.Configuration.ConfigurationManager.ConnectionStrings["ConexionBaseDesarrollo"].ConnectionString;

        public static long Nuevo(Calle parCalle)
        {
            long intRetorno = 0;
            //(strConexion,"spCalleNuevo", parCalle.NombreCalle)
            return intRetorno;
        }

        public static void Modificar(Calle parCalle)
        {
            //(strConexion,"spCalleModificar",parCalle.IDCalle,parCalle.NombreCalle)
        }

        public static void Eliminar(long parIDCalle)
        {
            //(strConexion,"SPCalleEliminar",parIDCalle)
        }

        public static Calle BuscarUno(long parIDCalle)
        {
            try
            {
                DataTable dt = new DataTable();
                //Busca el objeto por el ID, si lo encuentra lo devuelve
                dt = SqlHelper.ExecuteDataset(strConexion, "spCalleBuscarUno", parIDCalle).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    Calle oCalle = new Calle();
                    DataRow dr = dt.Rows[0];
                    oCalle.IDCalle = long.Parse(dr["IDCalle"].ToString());
                    oCalle.NombreCalle = dr["NombreCalle"].ToString();
                    return oCalle;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static List<Calle> BuscarVarios(string parNombreCalle)
        {
            try
            {
                List<Calle> ListaCalle = new List<Calle>();
                DataTable dt = new DataTable();
                //Busco el objeto por sus propiedades, si encontro, retorna el objeto Negocio
                //(strConexion,"spCalleBuscarVarios",parNombreCalle)
                if (dt.Rows.Count > 0)
                {
                    //Va cargando los cargos uno a uno.
                    foreach (DataRow dr in dt.Rows)
                    {
                        Calle oCalle = new Calle();
                        oCalle.IDCalle = long.Parse(dr["IDCalle"].ToString());
                        oCalle.NombreCalle = dr["NombreCalle"].ToString();
                        ListaCalle.Add(oCalle);
                    }
                    return ListaCalle;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        public static List<Calle> BuscarPorLocalidad (long parIDLocalidad)
        {
            try
            {
                List<Calle> ListaCalle = new List<Calle>();
                DataTable dt = new DataTable();
                dt = SqlHelper.ExecuteDataset(strConexion, "spCalleBuscarPorLocalidad", parIDLocalidad).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    //Va cargando los cargos uno a uno.
                    foreach (DataRow dr in dt.Rows)
                    {
                        Calle oCalle = new Calle();
                        oCalle.IDCalle = long.Parse(dr["IDCalle"].ToString());
                        oCalle.NombreCalle = dr["NombreCalle"].ToString();
                        ListaCalle.Add(oCalle);
                    }
                    return ListaCalle;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static List<Calle> BuscarPorLocalidadNombre (long parIDLocalidad, string Nombre)
        {
            try
            {
                List<Calle> ListaCalle = new List<Calle>();
                DataTable dt = new DataTable();
                dt = SqlHelper.ExecuteDataset(strConexion, "spCalleBuscarPorLocalidadNombre", parIDLocalidad, Nombre).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    //Va cargando los cargos uno a uno.
                    foreach (DataRow dr in dt.Rows)
                    {
                        Calle oCalle = new Calle();
                        oCalle.IDCalle = long.Parse(dr["IDCalle"].ToString());
                        oCalle.NombreCalle = dr["NombreCalle"].ToString();
                        ListaCalle.Add(oCalle);
                    }
                    return ListaCalle;
                }
                //sino retorna Null
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
